package org.jeecg.modules.sistersophie.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: invoice_info
 * @Author: jeecg-boot
 * @Date:   2021-06-04
 * @Version: V1.0
 */
@Data
@TableName("invoice_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="invoice_info对象", description="invoice_info")
public class InvoiceInfo implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Integer id;
	/**学生ID*/
	@Excel(name = "学生ID", width = 15)
    @ApiModelProperty(value = "学生ID")
    private Integer studentId;

	@TableField(exist = false)
	private String firstName;

    @TableField(exist = false)
	private String lastName;

	/**应付金额*/
	@Excel(name = "应付金额", width = 15)
    @ApiModelProperty(value = "应付金额")
    private BigDecimal amount;

	@TableField(exist = false)
	private String amountFormat;

    @Excel(name = "支付方式", width = 15)
    @ApiModelProperty(value = "支付方式")
    private String paymentMethod;

	/**税收金额*/
	@Excel(name = "税收金额", width = 15)
    @ApiModelProperty(value = "税收金额")
    private BigDecimal taxAmount;
	/**折扣百分比*/
	@Excel(name = "折扣百分比", width = 15)
    @ApiModelProperty(value = "折扣百分比")
    private Double discount;
	/**抵扣余额*/
	@Excel(name = "抵扣余额", width = 15)
    @ApiModelProperty(value = "抵扣余额")
    private Double credit;
	/**付款金额*/
	@Excel(name = "付款金额", width = 15)
    @ApiModelProperty(value = "付款金额")
    private BigDecimal invoiceAmount;

    @TableField(exist = false)
    private String invoiceAmountFormat;


	/**备注信息*/
	@Excel(name = "备注信息", width = 15)
    @ApiModelProperty(value = "备注信息")
    private String remarks;

    /**最后付款时间*/
    @Excel(name = "最后付款时间", width = 15)
    @ApiModelProperty(value = "最后付款时间")
    private String lastPayTime;

    @Excel(name = "付款警告标志", width = 15)
    @ApiModelProperty(value = "付款警告标志")
    private Integer payWarningFlag;//付款警告标志 0=正常 1=警告


	/**状态，0=未付款，1=付款中，2=已付款，3=付款失败*/
	@Excel(name = "状态，0=未付款，1=付款中，2=已付款，3=付款失败", width = 15)
    @ApiModelProperty(value = "状态，0=未付款，1=付款中，2=已付款，3=付款失败")
    private Integer status;
	/**删除标志 0=未删除，1=已删除*/
	@Excel(name = "删除标志 0=未删除，1=已删除", width = 15)
    @ApiModelProperty(value = "删除标志 0=未删除，1=已删除")
    private Integer isDelete;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createName;
	/**更新时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateName;
	/**通知状态 0=未通知，10=已通知*/
	@Excel(name = "通知状态 0=未通知，10=已通知", width = 15)
    @ApiModelProperty(value = "通知状态 0=未通知，10=已通知")
    private Integer invoiceStatus;
	/**通知时间*/
	@Excel(name = "通知时间", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "通知时间")
    private Date invoiceTime;

    /**税收扣点"*/
    @Excel(name = "税收扣点", width = 15)
    @ApiModelProperty(value = "税收扣点")
    private Double tax;

    /**税收扣点后金额*/
    @Excel(name = "税收扣点后金额", width = 15)
    @ApiModelProperty(value = "税收扣点后金额")
    private BigDecimal taxAfterAmount;

    @TableField(exist = false)
    private String taxAfterAmountFormat;

    /**折扣类型 1=百分比，2=固定金额*/
    @Excel(name = "折扣类型", width = 15)
    @ApiModelProperty(value = "折扣类型")
    private Integer discountType;

    /**折扣金额 */
    @Excel(name = "折扣金额", width = 15)
    @ApiModelProperty(value = "折扣金额")
    private BigDecimal discountAmount;

    @TableField(exist = false)
    private String discountAmountFormat;

    private String currency;

    private BigDecimal currencyAmount;


}
